package com.bcmusic.order.service;

import com.bcmusic.order.domain.cart.dto.AddToCartDTO;
import com.bcmusic.order.pojo.OrderCart;

import java.util.List;
import java.util.Map;

/****
 * @Author:admin
 * @Description:OrderCart业务层接口
 * @Date 2019/6/14 0:16
 *****/
public interface OrderCartService {

    /***
     * 新增OrderCart
     * @param orderCart
     */
    void add(OrderCart orderCart);

    /**
     * 删除一个商品
     * @param permissionId
     * @param userNum
     * @return
     */
    Boolean deleteOneCart(Integer permissionId, String userNum);

    /**
     * 清空购物车
     * @param userNum
     * @return
     */
    Boolean deleteAllCart(String userNum);

    /**
     * 查询购物车列表,返回购物车信息以及状态列表
     * @param userNum
     * @return
     */
    Map<String,Object> findList(String userNum);

//    /**
//     * 根据传过来的musicid获取想要结账的购物车物品
//     * @param musicNum
//     * @return
//     */
//    List<OrderCart>getCart(List<String> musicNum,String userNum);

//    /**
//     * 查询购物车时检查对应商品是否失效，如果失效，则在redis删除，并且返回给前端相应的状态数组
//     * @param cartList
//     * @param ids
//     * @return
//     */
//    List<Integer> check(List<OrderCart> cartList,List<Long> ids,String userNum);

    /**
     * 付款之后将购物车表中的数据添加到订单详情
     * @param idList
     * @return
     */
    List<OrderCart> getCartListByIdList(List<Integer> idList);

    /**
     * 添加购物车
     * @param addToCartDTO
     * @return
     */
    int addToCart(AddToCartDTO addToCartDTO,String userNum);

    /**
     * 根据orderid查询对应ordercart物品
     * @param orderId
     * @return
     */
    List<OrderCart> getOrderCartListByOrderId(Integer orderId);
}
